package cn.tedu.blockingqueue;


import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.TimeUnit;

public class BlockingQueueDemo {

    public static void main(String[] args) throws InterruptedException {

        // 构建阻塞式队列对象
        ArrayBlockingQueue<String> queue = new ArrayBlockingQueue<>(5);

        // 添加元素
        // queue.add("a");
        // queue.offer("b");
        // queue.put("c");

        queue.put("a");
        queue.put("a");
        queue.put("a");
        queue.put("a");
        queue.put("a");

        // 队列已满
        // 抛出IllegalStateException
        // queue.add("b");
        // 返回false
        // boolean b = queue.offer("b");
        // System.out.println(b);
        // 产生阻塞
        // queue.put("b");
        // 定时阻塞
        boolean b = queue.offer("b", 5, TimeUnit.SECONDS);
        System.out.println(b);

        System.out.println(queue);

    }

}
